package com.nuanshui.heatedloan.userinfo.tool;

import java.util.List;

import com.nuanshui.heatedloan.userinfo.model.IntegralRank;
import com.nuanshui.heatedloan.userinfo.model.SimpleUserInfo;
import com.nuanshui.heatedloan.userinfo.model.User;
import com.nuanshui.heatedloan.userinfo.vo.IncrUserIntegralVo;
import com.nuanshui.heatedloan.userinfo.vo.UserIntegralVo;



public interface UserTool {
	
	/**
	 * 增加用户积分
	 * @return
	 */
    IncrUserIntegralVo  incrUserIntegral(String userId, String... actions);
	/**
	 * 增加用户积分
	 * @return
	 */
    IncrUserIntegralVo  incrUserIntegral(String userId, String action);
	/**
	 * 获取用户基本信息
	 * @return
	 */
    SimpleUserInfo getSimpleUserInfo(String userId) ;

	/**
	 * 获取用户基本信息
	 * @return
	 */
    SimpleUserInfo setSimpleUserInfo(SimpleUserInfo userInfo) ;
	/**
	 * 删除缓存的用户信息
	 * @param userId
	 */
    void deleteSimpleUserInfo(String userId) ;
	/**
	 * 判断是否还可以加分
	 * @return
	 */
    boolean isIncrUserIntegral(String action) ;
	
	/**
	 * 获取所有积分等级 
	 * @return
	 */
    List<IntegralRank> findAllIntegralRank();
	/**
	 * 解析用户等级
	 * @param score
	 * @return
	 */
    int parseUserLevel(Double score) ;
	/**
	 * 获取用户等级
	 * @param userIntegralVo
	 */
    void parseUserLevel(UserIntegralVo userIntegralVo);
	
	/**
	 * 获取当前用户
	 * @return
	 */
    User getCurrentUser();
	
	/**
	 * 是否是登录用户  
	 * 已登录返回 trure 否则返回false
	 * @return
	 */
    boolean isLoginUser();
	
	/**
	 * 获取当前登录用户的UserId
	 * @return
	 */
    String getUserId();

	/**
	 * 更新聊天的token
	 * @param @param user
	 * @author guohao
	 * @date 2016年6月27日 上午9:54:00
	 * @since $
	 */
    void  updateChatToken(User user) ;
	
	User getCurrentUserNotCheck();
	
	/**
	 * 获取当前用户，如果没有则返回一个空字符串
	 * @return
	 */
    User getCurrentUserNotCheckEmptyId();

    List<String> getUserIds(String nick);
}
